SQL Server Audit এবং Change Tracking গাইড ও নোট

Microsoft Technologies - এমএস এসকিউএল সার্ভার (MS SQl Server) - Monitoring এবং Auditing Techniques
372

SQL Server Audit এবং Change Tracking হল দুটি গুরুত্বপূর্ণ টুল যা SQL Server-এ ডেটাবেসের কার্যক্রম ট্র্যাক এবং মনিটর করতে ব্যবহৃত হয়। এগুলি বিভিন্ন কারণে, যেমন সিকিউরিটি, কমপ্লায়েন্স, এবং ডেটা পরিবর্তন ট্র্যাকিং-এর জন্য খুবই কার্যকরী।


1. SQL Server Audit

SQL Server Audit হল একটি ফিচার যা SQL Server-এ ডেটাবেস বা সার্ভারের লেভেলে বিভিন্ন কার্যক্রম এবং ইভেন্টগুলো ট্র্যাক করতে সাহায্য করে। এটি বিশেষ করে সিকিউরিটি এবং কমপ্লায়েন্সের জন্য গুরুত্বপূর্ণ, কারণ এটি ডেটাবেসে কী কী পরিবর্তন হচ্ছে, কে পরিবর্তন করেছে, এবং কখন পরিবর্তন হয়েছে তা রেকর্ড করে।

1.1. SQL Server Audit এর গুরুত্ব

  • কমপ্লায়েন্স: অনেক আইটি এবং আইনগত নীতিমালা যেমন SOX, HIPAA, GDPR ইত্যাদি ডেটাবেস অডিটিংয়ের জন্য বাধ্যতামূলক নিয়মাবলি তৈরি করেছে।
  • সিকিউরিটি: SQL Server-এ অননুমোদিত অ্যাক্সেস এবং পরিবর্তন প্রতিরোধ করা, এবং সিস্টেমে সঠিক ট্র্যাকিং রাখা।
  • ডেটা নিরাপত্তা: ব্যবহারকারীদের কার্যক্রম এবং ডেটা অ্যাক্সেস মনিটর করা, যাতে কোনো অবৈধ অ্যাক্সেস বা ডেটা লিক প্রতিরোধ করা যায়।

1.2. SQL Server Audit ফিচারের মাধ্যমে ট্র্যাক করা যায়:

  • লগইন এবং লগআউট ইভেন্ট: কে কখন SQL Server-এ লগইন/লগআউট করেছে।
  • ডেটাবেসের ডেটা ম্যানিপুলেশন: ডেটা ইন্সার্ট, আপডেট, ডিলিট ইভেন্ট।
  • স্টোরড প্রোসিডিউর ও ফাংশন এক্সিকিউশন: কোন স্টোরড প্রোসিডিউর বা ফাংশন এক্সিকিউট হয়েছে।
  • ডাটাবেস অবজেক্টস ম্যানিপুলেশন: টেবিল বা ভিউ তৈরি, মডিফাই, বা ড্রপ ইভেন্ট।

1.3. SQL Server Audit কনফিগারেশন

SQL Server Audit কনফিগার করার জন্য নিম্নলিখিত পদক্ষেপগুলো অনুসরণ করতে হবে:

  1. Audit Object তৈরি করা: প্রথমে একটি অডিট অবজেক্ট তৈরি করতে হবে যা আমাদের অডিট ডেটা সংরক্ষণ করবে।

    CREATE SERVER AUDIT MyAudit
    TO FILE (FILEPATH = 'C:\AuditLogs\');
    ALTER SERVER AUDIT MyAudit
    WITH (STATE = ON);
    
  2. Audit Specification তৈরি করা: এরপর এক বা একাধিক অডিট স্পেসিফিকেশন তৈরি করতে হবে, যা নির্দিষ্ট কার্যক্রম ট্র্যাক করবে।

    CREATE SERVER AUDIT SPECIFICATION MyAuditSpec
    FOR SERVER AUDIT MyAudit
    ADD (SUCCESSFUL_LOGIN_GROUP),
    ADD (FAILED_LOGIN_GROUP);
    ALTER SERVER AUDIT SPECIFICATION MyAuditSpec
    WITH (STATE = ON);
    

    এখানে, SUCCESSFUL_LOGIN_GROUP এবং FAILED_LOGIN_GROUP সফল এবং ব্যর্থ লগইনের ট্র্যাকিংয়ের জন্য অ্যাড করা হয়েছে।

  3. Audit Logs পর্যালোচনা: অডিট লগ ফাইল পর্যালোচনা করার জন্য নিম্নলিখিত কমান্ড ব্যবহার করতে পারেন:

    SELECT * FROM fn_get_audit_file('C:\AuditLogs\*.sqlaudit', NULL, NULL);
    

1.4. SQL Server Audit এর সুবিধা

  • ডেটা নিরাপত্তা উন্নয়ন: SQL Server Audit সিস্টেমের সব কার্যক্রমকে ট্র্যাক করে, যা সিস্টেমের নিরাপত্তা নিশ্চিত করতে সাহায্য করে।
  • ইনট্রুশন ডিটেকশন: অডিট লগের মাধ্যমে অননুমোদিত অ্যাক্সেস শনাক্ত করা যায়।
  • প্রমাণিকতার ট্র্যাকিং: ব্যবহারকারী এবং অ্যাডমিনিস্ট্রেটরের কার্যক্রমের বিস্তারিত রেকর্ড রাখা হয়, যা তদন্তের সময় সহায়ক।

1.5. SQL Server Audit এর সীমাবদ্ধতা

  • পারফরম্যান্স ইফেক্ট: অতিরিক্ত অডিটিং সিস্টেমের পারফরম্যান্সে কিছুটা প্রভাব ফেলতে পারে, বিশেষ করে বড় ডেটাবেসের জন্য।
  • স্টোরেজ: অডিট লগ ফাইলগুলো বড় হতে পারে এবং যথাযথ স্টোরেজ ব্যবস্থাপনা প্রয়োজন।

2. Change Tracking

Change Tracking একটি SQL Server ফিচার যা ডেটাবেসের টেবিলগুলিতে কোন পরিবর্তন হয়েছে তা সহজভাবে ট্র্যাক করে। এটি সাধারণত টেবিলের ডেটার পরিবর্তন (ইন্সার্ট, আপডেট, ডিলিট) ট্র্যাক করতে ব্যবহৃত হয় এবং এই পরিবর্তনগুলির তথ্য রেকর্ড করে রাখে।

2.1. Change Tracking এর গুরুত্ব

  • ডেটা সিনক্রোনাইজেশন: অন্য সিস্টেমের সাথে ডেটা সিঙ্ক্রোনাইজ করতে সাহায্য করে, কারণ এটি সিস্টেমে কোন ডেটা পরিবর্তন হয়েছে তা জানাতে পারে।
  • কমপ্লেক্স কুয়েরি কমানো: ডেটার পরিবর্তন সম্পর্কিত ইনফরমেশন সরাসরি পাওয়া যায়, ফলে সিস্টেমে অতিরিক্ত কুয়েরি চালানোর প্রয়োজন হয় না।
  • অডিটিং সুবিধা: ডেটা পরিবর্তনের ইতিহাস সংরক্ষণ করে, যা পরবর্তী সময়ে অডিট করতে সহায়ক।

2.2. Change Tracking সক্রিয় করা

Change Tracking কার্যকর করার জন্য প্রথমে এটি ডেটাবেসে সক্রিয় করতে হবে:

  1. Change Tracking সক্রিয় করা:

    ALTER DATABASE YourDatabase
    SET CHANGE_TRACKING = ON
    (TRACK_COLUMNS_UPDATED = ON);
    
  2. টেবিলের জন্য Change Tracking সক্রিয় করা:

    এক বা একাধিক টেবিলের জন্য Change Tracking সক্রিয় করতে:

    ALTER TABLE YourTable
    ENABLE CHANGE_TRACKING;
    

2.3. Change Tracking এর মাধ্যমে ট্র্যাক করা যায়:

  • ডেটা পরিবর্তন: কোন রেকর্ডটি পরিবর্তিত হয়েছে তা ট্র্যাক করা।
  • অ্যাকশন টাইপ: কোন ধরনের পরিবর্তন ঘটেছে তা (ইন্সার্ট, আপডেট, ডিলিট) চিহ্নিত করা।

2.4. Change Tracking থেকে ডেটা রিট্রিভ করা

Change Tracking থেকে কোন পরিবর্তন হয়েছে তা দেখতে নিচের কুয়েরি ব্যবহার করা যেতে পারে:

SELECT *
FROM CHANGETABLE (CHANGES YourTable, 0) AS CT;

এখানে, CHANGETABLE ফাংশনটি টেবিলের পরিবর্তনগুলির একটি রেকর্ড আউটপুট করবে, যেখানে 0 নির্দেশ করে যে ডেটার পরিবর্তনের শুরুর পয়েন্ট ০।

2.5. Change Tracking এর সুবিধা

  • সহজ ইমপ্লেমেন্টেশন: সহজে সিস্টেমে সংযুক্ত করা যায় এবং ডেটা পরিবর্তন ট্র্যাক করতে কোনো জটিল কনফিগারেশন প্রয়োজন হয় না।
  • পারফরম্যান্সে প্রভাব কম: পরিবর্তন ট্র্যাকিংয়ের জন্য অতিরিক্ত ভারী কুয়েরি চালাতে হয় না, এটি খুবই দক্ষ।
  • অডিটিং এবং ডেটা রিপ্লিকেশন: ডেটা পরিবর্তন ট্র্যাকিংয়ের মাধ্যমে অডিটিং এবং ডেটা রিপ্লিকেশন সহজ করা যায়।

2.6. Change Tracking এর সীমাবদ্ধতা

  • ডেটার ইতিহাস: Change Tracking শুধুমাত্র পরিবর্তন করা রেকর্ডের উপর ফোকাস করে, এবং অতীতের পরিবর্তন ইতিহাস সংরক্ষণ করে না।
  • ডেটা স্কেলিং: বড় টেবিল বা ভলিউমে ডেটার পরিবর্তন ট্র্যাকিংয়ের ক্ষেত্রে কিছু সীমাবদ্ধতা থাকতে পারে।

সারাংশ: SQL Server Audit এবং Change Tracking দুটোই গুরুত্বপূর্ণ টুল যা ডেটাবেসের কার্যক্রম এবং ডেটা পরিবর্তন মনিটর করতে ব্যবহৃত হয়। SQL Server Audit সাধারণত সিকিউরিটি এবং কমপ্লায়েন্সের জন্য ব্যবহৃত হয়, যেখানে Change Tracking ডেটার পরিবর্তন ট্র্যাক করতে সহায়ক, বিশেষ করে সিঙ্ক্রোনাইজেশন বা রিপ্লিকেশন প্রয়োজনে।

Content added By
Promotion

Are you sure to start over?

Loading...